﻿<p class="lead"><code>PATH</code>是系统级环境变量</p>

<p>可以使用<code>echo $PATH</code>来查看环境变量的定义：
    <pre><code>[root@localhost chuan]# echo $PATH
/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_51/bin</code></pre>
</p>
<p><code>PATH</code>(一定是大写)这个变量的内容是由一堆目录所组成的，每个目录中间用冒号(:)来隔开， 每个目录是有『顺序』之分的。仔细看一下上面的输出，
    妳可以发现到无论是<code>root</code>还是其它账号都有<code>/bin</code> 这个目录在<code>PATH</code>变量内，
    所以能够在任何地方执行<code>ls</code>来找到<code>/bin/ls</code>执行！ </p>

<p>当我们在执行一个指令的时候，举例来说<code>ls</code>好了，系统会依照<code>PATH</code>的设定去每个<code>PATH</code>定义的目录
    下搜寻文件名为<code>ls</code>的可执行文件， 如果在<code>PATH</code>定义的目录中含有多个文件名为<code>ls</code>的可执行文件，
    那么先搜寻到的同名指令先被执行！ </p>

<p><strong>注意事项</strong></p>
<ul>
    <li>不同身份使用者预设的<code>PATH</code>不同，默认能够随意执行的指令也不同；<small>一般用户的<code>PATH</code>中，并不包含任何<code>sbin</code>目录的存在。</small></li>
    <li><code>PATH</code>是可以修改的，所以一般使用者还是可以透过修改<code>PATH</code>来执行某些位于<code>/sbin</code>或 <code>/usr/sbin</code>下的指令来查询；<br />
        <pre><code>[root@localhost chuan]# PATH="$PATH":/home/root
[root@localhost chuan]# echo $PATH 
/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_51/bin:/home/root</code></pre>
    </li>
    <li>使用绝对路径或相对路径直接指定某个指令的文件名来执行，会比搜寻<code>PATH</code>来的正确；<br />
        <code>$ /bin/ls</code><br />
        <code>$ /sbin/ifconfig eth0</code>
    </li>
    <li>指令应该要放置到正确的目录下，执行才会比较方便；</li>
    <li>本目录(.)最好不要放到PATH当中。<br />
        <ol><li>为了安全起见，不建议将<code>.</code>放入<code>PATH</code>的搜索目录；</li>
            <li>工作目录并不固定，如果把<code>.</code>加入<code>PATH</code>的搜索目录，则每个目录指令不同，会损害用户的使用习惯；</li>
        </ol>
    </li>
</ul>
